package Persistencia;



import java.io.*;//importo para poder usar o arquivo
import javax.swing.JOptionPane;//importo para poder usar o JOptionPane

/**
 *
 * @author Willian
 */
public class Arquivo {

    private String ip;
    private String senha;
    private String usuario;
    private String porta;

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public String getPorta() {
        return porta;
    }

    public void setPorta(String porta) {
        this.porta = porta;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }



    public void Leitura()//metodo que faz a leitura do arquivo
    {
        try//primeiro tratamento de execeções
        {
            FileInputStream leitura = new FileInputStream("Banco.bin");//leio o arquivo com nome Pessoa
            ObjectInputStream objLeitura = new ObjectInputStream(leitura);//uso para a leitura do objeto

            String w;//crio uma variavel 'w' do tipo pessoa
            try//segundo tratamento de execeções
            {
                
                     w = (String) objLeitura.readUTF();
                    ip=w;
                     w = (String) objLeitura.readUTF();
                    porta=w;
                     w = (String) objLeitura.readUTF();
                    usuario=w;
                     w = (String) objLeitura.readUTF();
                    senha=w;
                
            }  catch (EOFException ex)// toda vez que essa execeção é executada é por que o arquivo foi carregado
            {
                JOptionPane.showMessageDialog(null, "ERRO");//não exibo o nome do erro que ta na variavel 'ex' para não tumultuar a tela
                
                return;//retorno
            } finally//e toda vez no try eu executo essas linhas de codigo abaixo
            {
                leitura.close();//fecho a variavel leitura
                objLeitura.close();//e vejo a variavel objLeitura
            }
        } catch (FileNotFoundException ex)//se não encontrar o arquivo executa essa execeção
        {
            JOptionPane.showMessageDialog(null, "Arquivo não Encontrado");//exibe a mensagem
        } catch (IOException ex)//se der algum erro de entrada ou nesse caso saida de dados
        {
            JOptionPane.showMessageDialog(null, "Erro ao Recuperar os dados do Arquivo");//exibe isso
        }
    }

    public void setSalvarArquivo(String ip, String porta, String usuario,String senha)//metodo salva os objetos que estão no arraylist que esta na main
    {
        try {
            FileOutputStream gravar = new FileOutputStream("Banco.bin");//crio um arquivo com o nome Pessoa se ele existir eu sobrescrevo
           
            ObjectOutputStream objGravar = new ObjectOutputStream(gravar);//declaro a variavel que vai gravar
                objGravar.reset();
                objGravar.writeUTF(ip);//gravo objeto por objeto no arquivo
                objGravar.writeUTF(porta);//gravo objeto por objeto no arquivo
                objGravar.writeUTF(usuario);//gravo objeto por objeto no arquivo
                objGravar.writeUTF(senha);//gravo objeto por objeto no arquivo

            objGravar.flush();//fluxo
            objGravar.close();//fecho objGravar
            gravar.flush();//fluxo
            gravar.close();//fecho o gravar
            JOptionPane.showMessageDialog(null, "Gravado com Sucesso");//exibo isso mostrando que tudo foi gravado com sucesso
        } catch (FileNotFoundException ex)//execeÇão que ativa se não conseguir criar o arquivo
        {
            JOptionPane.showMessageDialog(null, "Arquivo não encontrado");
        } catch (IOException e1)//execeção que ativa quando da algum erro na gravação do arquivo
        {
            JOptionPane.showMessageDialog(null, "Erro ao gravar objeto");
        }

    }

    
}